package com.leyou.task.job;

import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class OrderJob {

    @Autowired
    private RedissonClient redissonClient;

//    每小时执行一次    秒 分 时  日 月 周
    // *
//    @Scheduled(cron = "0 0 0/1 * * ?")
//    @Scheduled(fixedRate = 1000*60*60)
    @Scheduled(fixedDelay = 1000*60*60)
    public void cleanOrder(){
        RLock lock = redissonClient.getLock("cleanOrder");
        boolean b = lock.tryLock();
        if(!b){
            return;
        }
//        执行清理订单的逻辑
//        调用order的微服务
//        update tb_order set STATUS=5 where status=1 and TIMESTAMPDIFF(MINUTE,create_time,NOW())>60
//        调用item的微服务
//        恢复库存
        lock.unlock();
    }

}
